﻿using System.Runtime.Serialization;

namespace Toybox.NicoSharp.Live.LiveGuide
{
	using Primitives;

	partial class ZeroTimeLine 
	{
		/// <summary>
		/// 番組
		/// </summary>
		[DataContract]
		public class Stream : AbstractLiveGuideStream
		{
			/// <summary>
			/// プロバイダタイプ
			/// </summary>
			[DataMember]
			public string provider_type;

			/// <summary>
			/// サムネイルURL
			/// </summary>
			[DataMember]
			public string thumbnail_url;

			/// <summary>
			/// 開始日付
			/// </summary>
			[DataMember]
			public string start_date;

			/// <summary>
			/// 終了日付
			/// </summary>
			[DataMember]
			public string end_date;

			/// <summary>
			/// 開始時間
			/// </summary>
			[DataMember]
			public string start_time;

			/// <summary>
			/// 終了時間
			/// </summary>
			[DataMember]
			public string end_time;

			/// <summary>
			/// 更新時間
			/// </summary>
			[DataMember]
			public string update_time;

			/// <summary>
			/// 総時間
			/// </summary>
			[DataMember]
			public string total_time;

			/// <summary>
			/// 状態
			/// </summary>
			[DataMember]
			public string status;

			/// <summary>
			/// 来場者数
			/// </summary>
			[DataMember]
			public int view_count;

			/// <summary>
			/// コメント数
			/// </summary>
			[DataMember]
			public int message_count;

			/// <summary>
			/// タイムシフト数
			/// </summary>
			[DataMember]
			public int timeshift_count;

			/// <summary>
			/// タイムシフト情報
			/// </summary>
			[DataMember]
			public TimeShift timeshift;

			/// <summary>
			/// ツイッタータグ
			/// </summary>
			[DataMember]
			public string twitter_tag;

			/// <summary>
			/// ツイッター有効
			/// </summary>
			[DataMember]
			public bool twitter_enabled;

			/// <summary>
			/// ニコツイ有効
			/// </summary>
			[DataMember]
			public bool nico_twi_enabled;

			/// <summary>
			/// 隠蔽情報
			/// </summary>
			[DataMember]
			public Hide hide;

			/// <summary>
			/// 開始日時可視
			/// </summary>
			[DataMember]
			public bool is_start_date_visible;

			/// <summary>
			/// 終了日時可視
			/// </summary>
			[DataMember]
			public bool is_end_date_visible;

			/// <summary>
			/// 公式
			/// </summary>
			[DataMember]
			public bool is_product;

			/// <summary>
			/// チャネルアイコン表示可
			/// </summary>
			[DataMember]
			public bool is_show_channel_icon;
		}

		/// <summary>
		/// TimeShift 情報クラス
		/// </summary>
		[DataContract]
		public class TimeShift
		{
			/// <summary>
			/// タイムシフト可能
			/// </summary>
			[DataMember]
			public bool enabled;

			/// <summary>
			/// 視聴可能
			/// </summary>
			[DataMember]
			public bool able_to_watch;

			/// <summary>
			/// 公開
			/// </summary>
			[DataMember]
			public bool is_open;

			/// <summary>
			/// メッセージ
			/// </summary>
			[DataMember]
			public string message;
		}

		/// <summary>
		/// Hide クラス
		/// </summary>
		[DataContract]
		public class Hide
		{
			/// <summary>
			/// 来場者数
			/// </summary>
			[DataMember]
			public bool view_count;

			/// <summary>
			/// コメント数
			/// </summary>
			[DataMember]
			public bool message_count;
		}
		
	}
}
